home *** CD-ROM | disk | FTP | other *** search
- /* mountod.c - mount an od in argv[1], change owner to user
- */
-
-
- #include <stdio.h>
-
- #define UNIT "0a" /* Default unit number */
- #define DEVICE "od" /* Default (only available) device name */
- #define DEVDIR "/dev" /* Default (only available) device directory */
- #define MOUNT "/usr/etc/mount" /* Command for mounting filesystem */
-
- #define MAX(x, y) \
- (x > y ? x : y)
-
-
- char *getenv();
-
- main(int argc, char *argv[])
- {
- char *cmdbuf;
- char *PgmName;
- char *unit;
- char *user;
-
-
- PgmName = basename(argv[0]); /* So messages look nice */
-
- if ((argc > 3) || (argc < 2)){
- (void)fprintf(stderr, "%s: wrong number of arguments\n", PgmName);
- (void)fprintf(stderr, "Usage: %s directory [UNIT]\n", PgmName);
- (void)fprintf(stderr,
- "\tUNIT is the OD unit number (e.g., 0a) to be mounted on directory\n", DEVDIR);
- exit(1);
- } else if (argc == 3) { /* Two argument provided */
- unit = argv[2];
- } else { /* One argument provided; use default unit */
- unit = UNIT;
- }
-
- cmdbuf = (char *)malloc(1024);
-
- (void)sprintf(cmdbuf, "%s %s/%s%s %s", MOUNT, DEVDIR, DEVICE, unit, argv[1]);
- if (0 != system(cmdbuf)) {
- (void)fprintf(stderr, "%s: problems mounting %s on %s.\n", PgmName, unit, argv[1]);
- exit(1);
- }
-
- if (user = getenv ("USER")) {
- (void)sprintf (cmdbuf, "/usr/etc/chown %s %s", user, argv[1]);
- if (0 != system(cmdbuf)) {
- (void)fprintf(stderr, "%s: problems with chown\n", PgmName);
- exit (2);
- } /* end if command didn't work */
- } else {
- fprintf (stderr, "%s: environment variable USER not defined\n", PgmName);
- exit (3);
- } /* end if USER in environment var */
-
- exit(0);
- }
-
-